Q: How can I create neat columns of text with proportional fonts?
Two grid properties relate to tabs, namely TabWidth, and TabArray.  Unfortunately, many grid types ignore TabWidth and TabArray at this time, generally because they display the font 0x09 character image instead of space.

Common grid types that recognize TabWidth and/or TabArray include:

XuiList
XuiPullDown
XuiTextArea
XuiTextLine

The following functions get and set TabArray and TabWidth .

XuiGetTabArray (grid, #GetTabArray, 0, 0, 0, 0, 0, @tab[])
XuiSetTabArray (grid, #SetTabArray, 0, 0, 0, 0, 0, @tab[])
XuiGetTabWidth (grid, #GetTabWidth, @width, 0, 0, 0, 0, 0)
XuiSetTabWidth (grid, #SetTabWidth, width, 0, 0, 0, 0, 0)

TabArray takes precedence over TabWidth .  If TabArray is not empty, its contents contain tab stop locations.  If a line of text has more tabs than TabArray has elements, TabWidth becomes active for the rest of the line.

TabArray must be an XLONG array.

TabArray and TabWidth specify pixel tab stops.